FIXME tag
----
====== Installation complète de la documentation ubuntu-fr en local ======

L'objectif de cette page est de mettre en place l'outil complet de la documentation sur une machine en local pour par exemple:
  * faire des tests de plugins
  * tester des thèmes
  * faire des essais d'export
  * connaître un peu plus les arcanes du système 
  * ...
et pourquoi pas [[:groupes:ubuntu-fr-webteam#comment_nous_aider|nous aider]] à signaler un bugs et améliorer le code.

<note important>Si vous souhaitez uniquement avoir une version légère de la documentation, et ce sans connexion internet, orientez-vous plutôt vers l'[[http://download.kiwix.org/zim/other/ubuntudoc_fr_all_2015-12.zim|archive Zim]] qui fait à peine 500Mo mais date de décembre 2015.</note>

<note tip>Pour préserver votre environnement, vous pouvez mettre en place ce qui suit sur [[:virtualbox]]. Cette méthode a d'ailleurs été testé en 64bits sur [[:Lubuntu]] desktop et [[:Budgie]].</note>

===== Pré-requis =====
Pour faire marcher [[https://www.dokuwiki.org/requirements|dokuwiki]], il faut: 
  * Un serveur qui supporte php. Pour la suite [[:Lighttpd]] a été choisi pour sa légèreté. 
    * Modifier les fichiers //10-fastgi.conf// et //15-fastcgi-php.conf// dans **/etc/lighttpd/conf-avalaible** (en faire une [[:tutoriel:comment_sauver_et_restaurer_un_fichier|sauvegarde]] avant) comme indiqué sur la page du serveur.
    *  Recharger les modules et relancer lighttpd
  * Installation minimale de [[:php]]. Pour la suite il s'agira de la version 7.0.
  * Installer [[:git ]] 

<note important>Pour la suite, les fichiers seront  placés dans ''/var/www/html/ubuntu-fr'' et non ''/var/www/ubuntu-fr'' ou alors définir dans **/etc/lighttpd/lighttpd.conf** le bon "document-root"
<file>server.document-root        = "/var/www/html/"</file>
</note>


===== Installation de la documentation =====
==== Les fichiers ====
Il faudra évidemment les fichiers de la //doc// accessible depuis [[https://launchpad.net/ubuntu-fr-doc|sa page launchpad]].\\
Depuis le dossier où vous souhaitez installer la documentation (ici ** /var/www/html/ubuntu-fr/**), saisissez dans un [[:terminal]] la [[:commande_shell|commande]] suivante:
<code>
git clone https://git.launchpad.net/ubuntu-fr-doc</code>

Il faudra également le dossier des données nommés //data//. Ce dossier au format //[[:tar|.tar.gz]]// ((environ 4Go à demander auprès des administrateurs)) sera à [[:archivage#graphiquement|décompresser]] dans le dossier précédemment créé, à savoir **/var/www/html/ubuntu-fr/ubuntu-fr-doc/**. 

<note tip>Il est possible de positionner les données dans un autre dossier et faire un lien symbolique vers celui-ci nommé **data** <code>ln -s /lieu/des/datas data</code> Attention cependant aux [[:droits]].

Il existe aussi la solution de modifier dans le fichier **local.protected.php** la ligne ''$conf['savedir'] = './data';''\\
Dans ce cas également "data" peut-être un lien symbolique vers le dossier contenant les données.
</note>

<note tip>À des fins de test uniquement, le dossier //data// doit au minimum contenir les répertoires suivants, même s'ils sont vides
  * attic
  * cache
  * index
  * locks
  * media
  * media_attic
  * media_meta
  * meta
  * pages
  * tmp
Vous n'aurez dans ce cas aucune page de la documentation, à moins de copier/coller le contenu depuis le site en ligne.
</note>
<note>Vous pouvez-ajoutez [[https://launchpad.net/ubuntu-fr-guide|Guide]] et [[https://launchpad.net/ubuntu-fr-tour|Tour]] mais pour avoir une installation minimal de la doc ce n'est pas utile. Attention cependant à garder en tête que certains liens peuvent ne pas marcher</note>

Vous aurez alors l'arborescence finale suivante:
  * var/www/html/ubuntu-fr/ubuntu-fr-doc/
    * bin/
    * conf/
    * data/
    * inc/
    * lib/
    * vendor/
    * doku.php
    * index.php
    * .htaccess.dist

==== Paramétrage ====

Modifiez les [[:droits]] sinon vous risquez d'avoir des [[#erreurs]]  
<code>
sudo chown -R www-data:www-data /var/www/html/ubuntu-fr
sudo chmod -R ug+rw /var/www/html/ubuntu-fr
</code>

Le **seul** fichier de configuration à modifier sera **conf/local.protected.php**. Il est prioritaire sur **local.php**, qui lui-même supplante **dokuwiki.php**.\\
Adaptez-le par exemple comme ceci 
<file php local.protected.php>
<?php
/*
 * Paramètres de configuration propres à votre serveur de travail
 * Attention les options principales sont dans local.php qu'il ne faut pas modifier
 * Penser à en faire une sauvegarde avant une màj
*/

//Le fichier userscripts.js sert pour les bouton en mode édition (exemple modifier un fichier, installer un paquet)

//https://www.dokuwiki.org/fr:rewrite pour pas avoir doku.php?id=nompage
//https://www.dokuwiki.org/rewrite#discussion pour php
//0: pas de rewrite / 1:passe par lighttpd.conf/ 2:interne à dokuwiki
//dans local.php ->= 1 car rewrite fait sur le serveur. Risque 404-not found en localhost
// donc:
$conf['userewrite'] = 2;

//passer en dev sinon ???
$conf['is_dev'] = 1;

//Gestion du thème
//Choix du template
//$conf['template']    = 'adoradark';
//$conf['template']    = 'dokuwiki';

//Lieux du template (pas trouvé comment mettre en local donc usage des servers pour le template, sinon choisir au dessus dokuwiki
//$conf['tpl']['ubuntu-2010']['static_host'] = '//www-static.ubuntu-fr.org';

 //Reactive toutes les actions
$conf['disableactions']='';

//* Gestion de connexion utilisateur pour le serveur de DEV.
$conf['authtype']='authplain'; //pour la connexion sans la base du forum
//remplir users.auth.php en faisant un sha1 sur le net.
//par exemple le login+mdp y on été mis à testeur/testeur avec
//testeur:0dd3d8466da1d1b581d8b1036f24ef43d37c7974:Moi:moi@nawak.og:members

//pour être admin et pas simple user
$conf['superuser']= 'testeur';

// Suivi des modifications non nécessaires en DEV
$conf['notify'] = '';

</file>

Modifier **users.auth.php** en vous basant sur  **users.auth.php.dist** si vous souhaitez avoir un utilisateur de connecté. Ici le nom choisi est //testeur// en login. La suite alphanumérique est le résultat en SHA1 du mot de passe qui est également //testeur//.
<file>testeur:0dd3d8466da1d1b581d8b1036f24ef43d37c7974:Moi:moi@nawk.org:admin</file>

Pour chiffrer votre mot de passe aller [[https://www.dcode.fr/hash-sha1|ici]].\\
À vous de faire vos essais ensuite, vous êtes chez vous 8-)

=====  Erreurs =====

==== Page blanche ====
Il peut s'agir de:
  * un mauvais réglage dans le fichier **local.protected.conf**. Vérifiez que vous n'avez pas oublié un ''$''  ou un '';'' ou encore fais usage d'un mauvais paramètre.
  * l'absence du paquet [[apt>php-xml]]. (notamment pour les actions sur les pages)
  * un [[#probleme_de_theme|problème de thème]]

==== 403: Forbidden ====
Vérifier la présence du dossier **data/** ainsi que les droits (utilisateur et groupe //www-data//) des différents fichiers et dossiers.

==== 404: Not Found ====
Passer le ''userewrite'' à 0 dans **local.protected.php**. Vérifier également la valeur de //server.document-root// (s'il s'agit de [[:Lighttpd]] dans **/etc/lighttpd/lighttpd.conf**)

==== Access Denied ====
FIXME Erreur de configuration du serveur?

==== Problème de thème ====
Vous avez bien le thème de la documentation ubuntu mais pas le contenu de la page. 

Commencer par modifier le fichier **local.protected.php** pour avoir la valeur 
<file>$conf['template'] = 'dokuwiki';</file> 
Si vous retrouvez la page c'est que le [[:services|service]] //php7.0-fpm// n'a pas été démarré comme indiqué dans le [[#pré-requis]].
<note tip>Vous pouvez rester avec le thème dokuwiki, mais attention dans ce mode certaines extensions peuvent fonctionner mais pas avec le template ubuntu.</note>

Si vous avez toujours le problème, vérifier dans le fichier **/etc/php/7.0/fpm/php.ini** que vous avez bien les valeurs suivantes
<file>;cgi.fix_pathinfo=1</file>et
<file>;short_open_tag = Off</file>
En cas de modification, relancer les services //php7.0-fpm// et //lighttpd//

==== Ce site est inaccessible ====
Mauvais paramétrage de **/etc/lighttpd/conf-available/15-fastcgi-php.conf**. Le modifier en conséquence pour php7 et relancer lighttpd

==== 503 - Service Not Available ====
Le [[:services|service]] //php7.0-fpm// n'est pas démarré. Essayez
<code>sudo service php7.0-fpm start</code>
Si besoin ajoutez-le au démarrage du système.<code>sudo systemctl enable php7.0-fpm.service</code>

==== Writing plugins.local.php failed ====
Le dossier **data/** n'a pas les bons droits

===== Sources =====
  * [[:groupes:ubuntu-fr-webteam:tester_les_outils|Tester les outils]]
  * [[https://www.howtoforge.com/tutorial/installing-lighttpd-with-php7-php-fpm-and-mysql-on-ubuntu-16.04-lts/|Installer lighttpd et php7]] **<sup>(en)</sup>**

----
//Contributeur: [[:utilisateurs:Fabux]]//
